qutebrowser MainWindow

qutebrowser 的主窗口,定义了程序的 UI 布局框架。

在该类中,定义了程序的整体布局框架,具体可参见《qutebrowser 布局框架》。

init 初始化

窗口唯一标识:

self.win_id = next(win_id_gen)

获取全局对象注册表:

self.registry = objreg.ObjectRegistry()

将窗口注册到全局窗口注册表:

objreg.window_registry[self.win_id] = self

注册相关上下文:

objreg.register('main-window', self, scope='window',
				window=self.win_id)
tab_registry = objreg.ObjectRegistry()
objreg.register('tab-registry', tab_registry, scope='window',
				window=self.win_id)

创建根布局:

self._vbox = QVBoxLayout(self)
self._vbox.setContentsMargins(0, 0, 0, 0)
self._vbox.setSpacing(0)

初始化下载管理器:

self._init_downloadmanager()
self._downloadview = downloadview.DownloadView(
	model=self._download_model)

创建 TabbedBrowser:

self.tabbed_browser: tabbedbrowser.TabbedBrowser =
	tabbedbrowser.TabbedBrowser(
		win_id=self.win_id, 
		private=self.is_private, 
		parent=self)

objreg.register('tabbed-browser', 
				self.tabbed_browser, 
				scope='window',
				window=self.win_id)

初始化命令分发器:

self._init_command_dispatcher()

创建状态栏:

self.status = bar.StatusBar(win_id=self.win_id,
							private=self.is_private,
							parent=self)

添加布局:

self._add_widgets()
self._downloadview.show()

初始化补全:

self._init_completion()

初始化模式:

log.init.debug("Initializing modes...")
modeman.init(win_id=self.win_id, parent=self)

初始化命令解释器:

self._commandrunner = runners.CommandRunner(
	self.win_id, partial_match=True, find_similar=True)

本文作者:Maeiee

本文链接:qutebrowser MainWindow

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!